#include<bits/stdc++.h>
using namespace std;

int n,d;
vector<int> edges[100002];
bool visit[100002];
int s,t,sum=0;

void dfs(int s1,int d1){
	if(d1>=d) return;
	for(auto i:edges[s1]){
		if(!visit[i]){
			visit[i]=true;
			sum++;
			dfs(i,d1+1);
		}
	}
}
int main(){
	cin>>n>>d;
	for(int i=0;i<n-1;i++){
		cin>>s>>t;
		edges[s].emplace_back(t);
		edges[t].emplace_back(s);
	}
	memset(visit,false,sizeof(visit));
	visit[1]=true;
	dfs(1,0);
	cout<<sum;
	return 0;
}
